package com.ssm.studen.service.impl;

import com.ssm.studen.dao.PersoninfoDao;
import com.ssm.studen.dao.StudentDao;
import com.ssm.studen.dao.TeacherDao;
import com.ssm.studen.model.Personinfo;
import com.ssm.studen.service.PersoninfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 人员信息表：
 *          实现业务及流程接口当中的内容
 */
@Service
public class PersoninfoServiceImpl implements PersoninfoService {

    @Autowired
    private PersoninfoDao personinfoDao;
    @Autowired
    private StudentDao studentDao;
    @Autowired
    private TeacherDao teacherDao;


    /**
     * 人员信息表添加方法
     * @param personinfo
     * @return
     */
    @Override
    public int addPersoninfo(Personinfo personinfo) {
        int returnInt = 0;
        /*
         * 业务判断
         *          1）登录账号不能重复
         * */
        //1）判断人员信息
        int personinfoPloginCount = personinfoDao.selectPersoninfoPloginCount(personinfo.getPlogin());
        if(personinfoPloginCount<1){
            //2.数据添加
            int addPersoninfoInt = personinfoDao.insertPersoninfo(personinfo);
            //3.返回值设置
            returnInt = addPersoninfoInt;
        }else{
            //有相同的角色名
            returnInt = -1;
        }
        return returnInt;
    }


    /**
     * 人员信息表删除方法
     * @param pnum
     * @return
     */
    @Override
    public int delPersoninfo(Integer pnum) {
        int delPersoninfo = 0;
        try {
            delPersoninfo = personinfoDao.delectPersoninfo(pnum);
        }catch (Exception e){
            delPersoninfo = -1;
            System.out.println("删除角色信息时执行SQL报错，信息为：" + e.getMessage());
        }
        return delPersoninfo;
    }


    /**
     * 人员信息表更新方法
     * @param personinfo
     * @return
     */
    @Override
    public int updatePersoninfo(Personinfo personinfo) {
        /*
         * 业务流程判断
         * */
        int isUpdate = 0;
        try {
            isUpdate = personinfoDao.updatePersoninfo(personinfo);
        }catch (Exception e){
            isUpdate = -1;
            //打印更新时报错的情况
            System.out.println("更新角色信息时执行SQL报错的原因是：" + e.getMessage());
        }
        return isUpdate;
    }


    /**
     * 人员信息表查询
     * @param pnum
     * @return
     */
    @Override
    public List<Personinfo> selectPersoninfo(int pnum) {
        List<Personinfo> list = personinfoDao.selectPersoninfo(pnum);
        return list;
    }


    /**
     * 全部查询
     * @return
     */
    @Override
    public List<Personinfo> findAll() {
        return personinfoDao.findAll();
    }


    /**
     * 登录操作
     * @param plogin
     * @param ppwd
     * @return
     */
    @Override
    public String login(String plogin, String ppwd) {
        return personinfoDao.login(plogin,ppwd);
    }
}
